/*

    该文件专门为count组件生成action对象

*/
import store from './store'
import {INCREMENT, DECREMENT} from './constant'

// 同步的action，接收object对象
// 加法,,=>后用（）表示返回一个对象
export const createIncrementAction = (data) => ({type:INCREMENT, data})
// 减法
export const createDecrementAction = (data) => ({type:DECREMENT, data})

// 异步加,,异步的action，就是指action的值为函数
// export const createIncrementAsyncAction = (data, time) => {
//     return () => {
//         setTimeout(()=>{
//             store.dispatch(createIncrementAction(data))
//         },time)
//     }
// }
// 不会再经过reducer进行处理，直接被store进行执行
export const createIncrementAsyncAction = (data, time) => {
    return (dispatch) => {
        setTimeout(()=>{
            dispatch(createIncrementAction(data))
        },time)
    }
}

// ======================上面的写法是高阶函数写法============================

// 减法，函数的写法也可以,但是到调用的时候，只能使用一个匿名函数来调用
// function createDecrementAction(data) {
//     return {type:'decrement', data}
// }
